# coding=utf-8
import json
from http import HTTPStatus

import dashscope

dashscope.api_key = "sk-245aab0a563b4ffca05f09d3f62127d3"





def extract_info(text,query):
    json_str = '{"key":"%s","value":"%s的数据范围"}' % (query, query)
    prompt = (
        f'''
         \n\n合同文本:{text}\n\n
        您的任务是审查提供的合同文本，并从中准确地抽取第一个出现的“{query}”。将这些信息整合成一个JSON数据格式，该数据仅包含一个键值对，其中键名固定为“{query}”，值则应是您从文本中抽取出的{query}的结合。如果文本中未明确列出{query}的具体数据或描述，请仅使用{query}作为值。
        输出格式应当遵循以下模式：{json_str},不能改变json的结构，必须包含有key字段和value字段。
        请注意，如果{query}服务范围无法确定，值应直接为{query}，不附加任何额外信息。
                ''' )
    print(prompt)
    messages = [{'role': 'system', 'content': '你是一个数据分析人员，擅长总结与抽取实用数据'},
                {'role': 'user', 'content': prompt}]
    response = dashscope.Generation.call(
        dashscope.Generation.Models.qwen_turbo,
        messages=messages,
        result_format='message',  # 将返回结果格式设置为 message
    )
    if response.status_code == HTTPStatus.OK:
        # 获取模型输出
        print(response)
        return response.output.choices[0]['message']['content']
    else:
        print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
            response.request_id, response.status_code,
            response.code, response.message
        ))


if __name__ == '__main__':
    data = '''
    ['```json\n{\n  "合同编号": "",\n  "工程名称-施工服务范围": "",\n  "合作内容-专业": "",\n  "服务区域": "",\n  "施工服务费取费标准": "",\n  "适用取费标准文件判断": "",\n  "合同执行期限": "",\n  "框架合同上限": "",\n  "增值税率/征收率": "",\n  "合同折扣率（含税）": "",\n  "合同折扣率（不含税）": "",\n  "合同下浮率": "",\n  "合同支付条款": "[□ 按通用条款第82.2款规定提交。■ 按专用条款第82.6款规定提交。]",\n  "合同签订日期": "",\n  "计日工": "",\n  "建设用地及综合赔补费": "",\n  "建设协调费/施工协调费": "",\n  "选址协调费": "",\n  "物业赔偿费": "",\n  "二次搬运费": "",\n  "模测费": "",\n  "标签制作费": "",\n  "资源录入费": "",\n  "搬迁设备包装及运输费用": "",\n  "联合试运转调测费": "",\n  "零星材料及录入费": "",\n  "部分取费项取消": "",\n  "施工调遣费": "",\n  "安全文明施工费": ""\n}\n```\n\n由于提供的文本内容主要是关于工程项目的管理规定和承包商的责任，没有直接涉及具体的合同编号、工程名称、专业服务内容、费用标准等关键信息，这些字段在给定的文本中并未明确给出。因此，上述JSON中的相应字段值都为空。如果需要填充这些字段，需要更多具体合同条款或实际的项目信息。', '```json\n{\n  "合同编号": "",\n  "工程名称-施工服务范围": "未提供",\n  "合作内容-专业": "施工",\n  "服务区域": "",\n  "施工服务费取费标准": "",\n  "适用取费标准文件判断": "",\n  "合同执行期限": "",\n  "框架合同上限": "",\n  "增值税率/征收率": "",\n  "合同折扣率(含税)": "",\n  "合同折扣率(不含税)": "",\n  "合同下浮率": "",\n  "合同支付条款": {\n    "误期赔偿费": {\n      "每日历天应赔额度": "专用条款约定",\n      "最高限额": "合同价款的5%",\n      "支付方式": "列入进度支付文件或竣工结算文件中"\n    }\n  },\n  "合同签订日期": "",\n  "计日工": "",\n  "建设用地及综合赔补费": "",\n  "建设协调费/施工协调费": "",\n  "选址协调费": "",\n  "物业赔偿费": "",\n  "二次搬运费": "",\n  "模测费": "",\n  "标签制作费": "",\n  "资源录入费": "",\n  "搬迁设备包装及运输费用": "",\n  "联合试运转调测费": "",\n  "零星材料及录入费": "",\n  "部分取费项取消": "",\n  "施工调遣费": "",\n  "安全文明施工费": ""\n}\n```\n\n由于提供的文本中没有具体的合同编号、工程名称、服务区域、施工服务费取费标准、增值税率、合同折扣率、下浮率、计日工、具体金额或日期等关键信息，这些字段都为空。如有需要，您需要提供包含这些详细信息的完整合同文本。', '```json\n{\n  "合同编号": "",\n  "工程名称-施工服务范围": "",\n  "合作内容-专业": "",\n  "服务区域": "",\n  "施工服务费取费标准": "",\n  "适用取费标准文件判断": "",\n  "合同执行期限": "",\n  "框架合同上限": "",\n  "增值税率/征收率": "",\n  "合同折扣率(含税)": "",\n  "合同折扣率(不含税)": "",\n  "合同下浮率": "",\n  "合同支付条款": "除费用索赔、现场签证事件分别按照第74条、第75条规定外",\n  "合同签订日期": "",\n  "计日工": "",\n  "建设用地及综合赔补费": "",\n  "建设协调费/施工协调费": "",\n  "选址协调费": "",\n  "物业赔偿费": "",\n  "二次搬运费": "",\n  "模测费": "",\n  "标签制作费": "",\n  "资源录入费": "",\n  "搬迁设备包装及运输费用": "",\n  "联合试运转调测费": "",\n  "零星材料及录入费": "",\n  "部分取费项取消": "",\n  "施工调遣费": "",\n  "安全文明施工费": "",\n  "后继法律法规变化事件": {\n    "调整依据": "第69.1条",\n    "误期赔偿费": {\n      "延迟初步验收": "N*0.2‰",\n      "延迟竣工验收": "N*0.2‰",\n      "最高限额": "合同价款的3%",\n      "上限": "300万元"\n    }\n  },\n  "工程变更事件": "采购订单合同价款的调整",\n  "物价涨落事件": "包括在采购订单合同价款调整因素中",\n  "费用索赔事件": "采购订单合同价款调整因素之一",\n  "现场签证事件": "采购订单合同价款调整因素之一",\n  "合同双方约定的其他调整事件": "由发包人引起的工程变更、设计变更"\n}\n```\n\n注意：上述内容中的"N"、具体数值和合同编号需要从实际文本中提取，这里为了简洁起见，没有提供具体的数值。请根据实际文本中的内容替换这些占位符。', '```json\n{\n  "合同编号": "",\n  "工程名称-施工服务范围": "",\n  "合作内容-专业": "",\n  "服务区域": "",\n  "施工服务费取费标准": "投标折扣率后的综合单价包干",\n  "适用取费标准文件判断": "",\n  "合同执行期限": "",\n  "框架合同上限": "",\n  "增值税率/征收率": "",\n  "合同折扣率（含税）": "",\n  "合同折扣率（不含税）": "",\n  "合同下浮率": "",\n  "合同支付条款": "",\n  "合同签订日期": "",\n  "计日工": "",\n  "建设用地及综合赔补费": "",\n  "建设协调费/施工协调费": "",\n  "选址协调费": "",\n  "物业赔偿费": "",\n  "二次搬运费": "",\n  "模测费": "",\n  "标签制作费": "",\n  "资源录入费": "",\n  "搬迁设备包装及运输费用": "",\n  "联合试运转调测费": "",\n  "零星材料及录入费": "",\n  "部分取费项取消": "",\n  "施工调遣费": "",\n  "安全文明施工费": ""\n}\n```\n\n由于提供的文本中并未包含具体的合同编号、工程名称、服务区域、施工服务费取费标准等关键信息，这些字段在上述示例中都为空。如果这些信息可以从文本中提取，你需要提供含有这些详细信息的具体文本。']
    '''
    result = extract_info(data)
    print(result)
